/*
|--------------------------------------------------------------------------
| 路由的默认配置信息
|--------------------------------------------------------------------------
| beforeHandler 路由拦截器 在路由请求之前执行， handler 路由处理 具体路由当中应当覆盖此默认值
*/

exports.defaultConfig = {
  // 默认 controller 项，定义了页面登录等功能
  // 是否 login 是业务配置，如果不需要则 needLogin 为 false 即可
  needLogin: true,

  // 如果 beforeHandler return false 则不会触发 handler
  // 记得在 beforeHandler 中 不要出现停滞的状态 真不行就抛异常
  async beforeHandler(ctx) {    // beforeHandler.call(config, ctx)
    if (this.needLogin === 'maybe') {
      const user = ctx.request.user = ctx.user =
        await ctx.request.checkLogin({ redirectLogin: false })
      return
    }
    if (this.needLogin) {
      const user = ctx.request.user = ctx.user =
        await ctx.request.checkLogin()
      if (!user) {
        return false
      }
    }
  },

  // 在此处处理 所有业务逻辑
  async handler(ctx) {
    ctx.response.notFound('还没有定义action')
  }
}

// 下面的特定环境可以深度合并到上面的默认环境
// 线上环境是上面的默认环境，不要乱改哦

// 开发环境配置
exports.development = {
  a: 5
}
// 测试环境配置
exports.testing = {

}